home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Cool Demos, SDKs, & Tools / Demos⁄Tools⁄Offers / Eiffel for CW beta 3 / EiffelS2 / LIBRARY / MOTEL / Menus.c < prev    next >
Text File  |  1999-05-22  |  3KB  |  126 lines

  1. /*------------------------------------------------------------------*/
  2. /* Eiffel/S II MacOS Runtime                                         */
  3. /*------------------------------------------------------------------*/
  4. /* Author    : Ian Joyner                                               */
  5. /* Release   : 1.0                                                  */
  6. /* Date      : Dec. 1997                                            */
  7. /* Copyright : Ian Joyner                                            */
  8. /*------------------------------------------------------------------*/
  9. /********************************************************************/
  10. /*                                                                    */
  11. /*                                MENUs                                */
  12. /*                                                                    */
  13. /********************************************************************/
  14.  
  15. #include <Menus.h>
  16. #include <Eiffel2.h>
  17. #include "MOTEL.h"
  18.  
  19. INTEGER platform_menu_size ()
  20. {
  21.     MenuInfo m;
  22.     
  23.     return (sizeof (m));
  24. }
  25.  
  26.  
  27. POINTER platform_menu_new (INTEGER menu_id, ConstStr255Param title)
  28. {
  29.     Str255 scratch;
  30.     
  31.     strcpy (scratch, title);
  32.     c2pstr ((char *)scratch); /* This might not be right if string is loaded from a resource */
  33.     return ((POINTER)NewMenu (menu_id, scratch));
  34. }
  35.  
  36. POINTER platform_menu_get (INTEGER resource_id)
  37. {
  38.     return ((POINTER)GetMenu (resource_id));
  39. }
  40.  
  41. POINTER platform_menu_get_handle (INTEGER menu_id)
  42. {
  43.     return ((POINTER)GetMenuHandle (menu_id));
  44. }
  45.  
  46. INTEGER platform_menu_id (MenuHandle mh)
  47. {
  48.     return (*mh)->menuID;
  49. }
  50.  
  51. INTEGER platform_menu_width (MenuHandle mh)
  52. {
  53.     return (*mh)->menuWidth;
  54. }
  55.  
  56. INTEGER platform_menu_height (MenuHandle mh)
  57. {
  58.     return (*mh)->menuHeight;
  59. }
  60.  
  61. POINTER platform_menu_procedure (MenuHandle mh)
  62. {
  63.     return (POINTER)(*mh)->menuProc;
  64. }
  65.  
  66. INTEGER platform_menu_flags (MenuHandle mh)
  67. {
  68.     return (*mh)->enableFlags;
  69. }
  70.  
  71. POINTER platform_menu_data (MenuHandle mh)
  72. {
  73.     return (POINTER)(*mh)->menuData;
  74. }
  75.  
  76. void platform_res_menu_append (MenuHandle mh, ConstStr255Param res_type)
  77. {
  78.     union
  79.     {
  80.         ResType r;
  81.         char c [4];
  82.     } rt;
  83.     
  84.     rt.c [0] = res_type [0];  rt.c [1] = res_type [1];  rt.c [2] = res_type [2];  rt.c [3] = res_type [3];
  85.     
  86.     AppendResMenu (mh, rt.r);
  87. }
  88.  
  89. void platform_res_menu_insert (MenuHandle mh, ConstStr255Param res_type, INTEGER after)
  90. {
  91.     union
  92.     {
  93.         ResType r;
  94.         char c [4];
  95.     } rt;
  96.     
  97.     rt.c [0] = res_type [0];  rt.c [1] = res_type [1];  rt.c [2] = res_type [2];  rt.c [3] = res_type [3];
  98.     
  99.     InsertResMenu (mh, rt.r, after);
  100. }
  101.  
  102. POINTER platform_menu_get_item_text (MenuHandle mh, INTEGER item)
  103. {
  104.     GetMenuItemText (mh, item, scratch_string);
  105.     p2cstr ((char *)scratch_string);
  106.     
  107.     return &scratch_string;
  108. }
  109.  
  110. void platform_menu_set_item_text (MenuHandle mh, INTEGER item, POINTER text)
  111. {
  112.     Str255 scratch;
  113.     
  114.     strcpy (scratch, text);
  115.     c2pstr ((char *)scratch); /* This might not be right if string is loaded from a resource */
  116.  
  117.     SetMenuItemText (mh, item, scratch);
  118. }
  119.  
  120. void platform_menu_set_item_menu (MenuHandle mh, INTEGER item, INTEGER menu)
  121. {
  122.     SetItemCmd (mh, item, 27);
  123.     SetItemMark (mh, item, menu);
  124. }
  125.  
  126.